
jQuery.gridToXls = function(_grid,_providerClass,_fileName,_excludeField,formAction){
	
	var exportUtils = {
		
		grid : _grid,
		fileName : _fileName,
		providerClass : _providerClass,
		excludeField : _excludeField,
		
		exportToXls : function(){
			
			//需要导出的列的id组合
			var columns = '';
			
			//需要导出的列的标题组合
			var title = '';
			
			//需要导出的列的单元格的宽度
			var cellWidth = '';
			
			if(this.grid)
			{
				//查看pageInfo里面的totalRowNum属性,如果总行数为0，则提示没有数据可以导出
				if(this.grid.getPageInfo().totalRowNum == 0)
				{
					alert('没有可以导出的数据');
					return ;
				}
				
				var self = this;
				//得到需要导出为xsl的列的信息
				$(this.grid.columns).each(function(key,element){
					
					if(!self.excludeField || (self.excludeField && self.excludeField.indexOf(element.id) < 0 ))
					{
						//拼装传递后台的字符串,元素之间用逗号分隔
						columns += (columns ? "," : "") + element.id ;
						title += (title ? "," : "") + element.header ;
						cellWidth += (cellWidth ? "," : "") + element.width ;
					}
				});
			}
			
			//因为可能在之前就加入了frame和form,这里最好先清除，在加入，保证不会出错
			$('#grid_export_frame').remove();
			$('#grid_export_form').remove();
			
			//这个iframe主要是用于提供下载,作为一个中间媒介，这样就不会影响list页面的操作
			var html = '<iframe id="grid_export_frame" name="grid_export_frame" height=0 width=1 style="display:none"></iframe>';
			
			//把form的target设置为临时的iframe,这样就会变成在iframe有个提交的请求,因为参数比较多，所以改成post提交
			html += '<form id="grid_export_form" name="grid_export_form" method="post" target="grid_export_frame">';
			html += '<input type="hidden" name="expFileName" value="' + (this.fileName ? this.fileName : "") + '">';
			html += '<input type="hidden" name="totalRowNum" value="' + this.grid.getPageInfo().totalRowNum + '">';
			html += '<input type="hidden" name="COLUMNS" value="' + columns + '">';
			html += '<input type="hidden" name="TITLES" value="' + title + '">';
			html += '<input type="hidden" name="WIDTHS" value="' + cellWidth + '">';
			html += '<input type="hidden" name="exportAction" value="export">';
			
			//如果在调用方法的时候提供了数据源访问类则使用提供的，如果没有，则默认使用要导出的表格的数据源提供类
			html+='<input type="hidden" name="exportProvider" value="'+(this.grid.exportProvider?this.grid.exportProvider:this.providerClass)+'">';
			
			//把表格的查询参数全部变成input带上
			var map = this.grid.parameters;
			for(p in map){
				html += '<input type="hidden" name="' + p + '" value="' + map[p] + '">';
			}
			html += '</form>';
			
			
			
			$('body').append(html);
			
			var $form = $("#grid_export_form");
			
			//如果调用方法的时候有提供提交的地址,就使用那个地址,否则使用默认地址提交
			if(formAction){
				$form.attr("action",formAction);
			}else{
				$form.attr("action","/MedicalSystem/grid/export");
			}
			$form.submit();
		}	
			
	}
	
	return exportUtils.exportToXls();
}